home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 February: Tool Chest / Apple Developer CD Series Tool Chest February 1996 (Apple Computer)(1996).iso / Sample Code / AOCE Sample Code / PowerTalk Access Modules / Sample SMSAM / SampleSMSAM Source / ThreadStuff / AYSThreadGlue.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-07-28  |  4.9 KB  |  157 lines  |  [TEXT/MPS ]

  1. /*
  2.     File:        AYSThreadGlue.h
  3.  
  4.     Copyright:    © 1991-1994 by Apple Computer, Inc.
  5.                 All rights reserved.
  6.  
  7.     Part of the AOCE Sample SMSAM Package.  Consult the license
  8.     which came with this software for your specific legal rights.
  9.  
  10. */
  11.  
  12.  
  13.  
  14. #ifndef __AYSTHREADGLUE__
  15. #define __AYSTHREADGLUE__
  16.  
  17. #ifndef __BLJSTANDARDINCLUDES__
  18. #include "BLJStandardIncludes.h"
  19. #endif
  20.  
  21. #ifndef __OCE__
  22. #include "OCE.h"
  23. #endif
  24.  
  25. #ifndef __OCEMAIL__
  26. #include "OCEMail.h"
  27. #endif
  28.  
  29. #ifndef __OCEAUTHDIR__
  30. #include "OCEAuthDir.h"
  31. #endif
  32.  
  33. #if 0
  34. #ifndef __THREAD__
  35. #include "Thread.h"
  36. #endif
  37. #else
  38. #ifndef __THREADCLASSES__
  39. #include "ThreadClasses.h"
  40. #endif
  41. #endif
  42.  
  43.  
  44. #ifndef __GENERIC__
  45. #include <Generic.h>
  46. #endif
  47.  
  48.  
  49. # define    __junk(k) k
  50. #ifndef name2
  51. # define    name2(a,b) __junk(a)b
  52. #endif
  53. #ifndef name3
  54. # define    name3(a,b,c) __junk(a)__junk(b)c
  55. #endif
  56. #ifndef name4
  57. # define    name4(a,b,c,d) __junk(a)__junk(b)__junk(c)d
  58. #endif
  59.  
  60. typedef    pascal    OSErr    (*FNPBB)(ParmBlkPtr, Boolean);
  61.  
  62. OSErr ThreadPBCallAsync ( FNPBB functionToCall, ParmBlkPtr pb );
  63.  
  64. #ifndef MakePBFunctionSleepable
  65. #define MakePBFunctionSleepable(function,ParamBlockType) \
  66.     pascal OSErr name2(function,Glue)(ParamBlockType* pb, Boolean async); \
  67.     inline OSErr name2(function,Sleep)(ParamBlockType* pb) { \
  68.         /* return TFSDispatchAsync((FNPBB) name2(function,Glue), (ParmBlkPtr) pb);   */ \
  69.         return ThreadPBCallAsync ((FNPBB) name2(function,Glue), (ParmBlkPtr) pb); \
  70.     };
  71. #endif
  72.  
  73.  
  74. // MakePBFunctionSleepable(PGWGetSlotQueueID,MSAMParam);
  75.  
  76.  
  77. MakePBFunctionSleepable(SMSAMShutdown,MSAMParam);
  78.  
  79. MakePBFunctionSleepable(PMSAMSetStatus,MSAMParam);
  80.  
  81. MakePBFunctionSleepable(MSAMEnumerate,MSAMParam);
  82. MakePBFunctionSleepable(MSAMDelete,MSAMParam);
  83. MakePBFunctionSleepable(MSAMMarkRecipients,MSAMParam);
  84. MakePBFunctionSleepable(MSAMnMarkRecipients,MSAMParam);
  85.  
  86. MakePBFunctionSleepable(MSAMCreate, MSAMParam);
  87. MakePBFunctionSleepable(MSAMOpen, MSAMParam);
  88. MakePBFunctionSleepable(MSAMOpenNested, MSAMParam);
  89. MakePBFunctionSleepable(MSAMClose,MSAMParam);
  90.  
  91. MakePBFunctionSleepable(MSAMGetRecipients,MSAMParam);
  92. MakePBFunctionSleepable(MSAMGetAttributes,MSAMParam);
  93. MakePBFunctionSleepable(MSAMGetContent,MSAMParam);
  94. MakePBFunctionSleepable(MSAMGetEnclosure,MSAMParam);
  95. MakePBFunctionSleepable(MSAMGetBlock,MSAMParam);
  96. MakePBFunctionSleepable(MSAMGetMsgHeader,MSAMParam);
  97.  
  98. MakePBFunctionSleepable(MSAMPutAttribute,MSAMParam);
  99. MakePBFunctionSleepable(MSAMPutRecipient,MSAMParam);
  100. MakePBFunctionSleepable(MSAMPutContent,MSAMParam);
  101. MakePBFunctionSleepable(MSAMPutBlock,MSAMParam);
  102. MakePBFunctionSleepable(MSAMPutMsgHeader,MSAMParam);
  103.  
  104. MakePBFunctionSleepable(MSAMCreateReport,MSAMParam);
  105. MakePBFunctionSleepable(MSAMPutRecipientReport,MSAMParam);
  106.  
  107. MakePBFunctionSleepable(MSAMEnumerateBlocks, MSAMParam);
  108.  
  109.  
  110. MakePBFunctionSleepable(DirAddRecord, DirParamBlock);
  111. MakePBFunctionSleepable(DirDeleteRecord, DirParamBlock);
  112. MakePBFunctionSleepable(DirEnumerateGet, DirParamBlock);
  113. MakePBFunctionSleepable(DirEnumerateParse, DirParamBlock);
  114. MakePBFunctionSleepable(DirLookupGet, DirParamBlock);
  115. MakePBFunctionSleepable(DirLookupParse, DirParamBlock);
  116. MakePBFunctionSleepable(DirAddAttributeValue, DirParamBlock);
  117. MakePBFunctionSleepable(DirDeleteAttributeValue, DirParamBlock);
  118. MakePBFunctionSleepable(DirDeleteAttributeType, DirParamBlock);
  119. MakePBFunctionSleepable(DirChangeAttributeValue, DirParamBlock);
  120. MakePBFunctionSleepable(DirVerifyAttributeValue, DirParamBlock);
  121. MakePBFunctionSleepable(DirEnumerateAttributeTypesGet, DirParamBlock);
  122. MakePBFunctionSleepable(DirEnumerateAttributeTypesParse, DirParamBlock);
  123. MakePBFunctionSleepable(DirAddAlias, DirParamBlock);
  124.  
  125. MakePBFunctionSleepable(DirGetNameAndType, DirParamBlock);
  126. MakePBFunctionSleepable(DirSetNameAndType, DirParamBlock);
  127. MakePBFunctionSleepable(DirGetRecordMetaInfo, DirParamBlock);
  128. MakePBFunctionSleepable(DirGetDirectoryInfo, DirParamBlock);
  129. // MakePBFunctionSleepable(DirSetRecordAccessControl, DirParamBlock);
  130.  
  131. MakePBFunctionSleepable(DirGetRecordAccessControlGet, DirParamBlock);
  132. MakePBFunctionSleepable(DirGetRecordAccessControlParse, DirParamBlock);
  133.  
  134. MakePBFunctionSleepable(DirGetAttributeAccessControlGet, DirParamBlock);
  135. MakePBFunctionSleepable(DirGetAttributeAccessControlParse, DirParamBlock);
  136.  
  137. // MakePBFunctionSleepable(DirSetAttributeAccessControl, DirParamBlock);
  138. MakePBFunctionSleepable(DirEnumerateDirectoriesGet, DirParamBlock);
  139. MakePBFunctionSleepable(DirEnumerateDirectoriesParse, DirParamBlock);
  140.  
  141. MakePBFunctionSleepable(DirMapPathNameToDNodeNumber, DirParamBlock);
  142. MakePBFunctionSleepable(DirMapDNodeNumberToPathName, DirParamBlock);
  143. MakePBFunctionSleepable(DirGetLocalNetworkSpec, DirParamBlock);
  144.  
  145. MakePBFunctionSleepable(DirGetExtendedDirectoriesInfo, DirParamBlock);
  146.  
  147. /*  Trap Dispatchers for Personal Address Book and DASH Extensions */
  148. // MakeOCEFunctionSleepable(DSInstallDirectory, DirParamBlock);
  149. // MakeOCEFunctionSleepable(DSCloseDirectory, DirParamBlock);
  150. // MakeOCEFunctionSleepable(DSGetDirectoryIcon, DirParamBlock);
  151.  
  152. # undef    aysname2
  153. # undef    aysname3
  154. # undef    aysname4
  155.  
  156. #endif
  157.